﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CajaChica.Clases;
using CajaChica.Interfaces;

namespace CajaChica.Formularios
{
    public partial class frmMaestroTipoCambio : CajaChica.Formularios.frmMaestro       
    {
        clsTipoCambio objTipoCambio;
        public frmMaestroTipoCambio()
        {
            InitializeComponent();
        }

        private void frmMaestroTipoCambio_Load(object sender, EventArgs e)
        {
            objTipoCambio = new clsTipoCambio();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
            this.grdListado.AutoGenerateColumns = false;
            this.grdListado.DataSource = objTipoCambio.CargarDatosGridView();
            this.AsignarPropiedadesGrid();
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es-CR");
            System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalDigits = 4;
            System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = ".";
            System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyGroupSeparator = ",";
            System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";


        }

        public void Imprimir()
        {
            
        }

        public void Cancelar()
        {
            
        }

        public void Limpiar()
        {
            dtFecha.Text ="";
            txtCompra.Text = "0.0";
            txtVenta.Text = "0.0";
        }

        public void AsignarPropiedadesGrid()
        {
            grdListado.AutoGenerateColumns = false;
            grdListado.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            grdListado.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grdListado.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grdListado.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grdListado.Columns[0].DataPropertyName = "CODIGO";
            grdListado.Columns[1].DataPropertyName = "FECHA";
            grdListado.Columns[2].DataPropertyName = "COMPRA";
            grdListado.Columns[3].DataPropertyName = "VENTA";
        }

        private void sbpNuevo_Click(object sender, EventArgs e)
        {
            this.Limpiar();
            stcMaestro.SelectedTab = stiRegistro;
            dtFecha.Select();
            
        }

        private void btnVerImprimir_Click(object sender, EventArgs e)
        {
            
        }

        private void btnNuevoGuardar_Click(object sender, EventArgs e)
        {
            objTipoCambio = new clsTipoCambio();
            try
            {
                objTipoCambio.Guardar(DateTime.Parse(dtFecha.Text), decimal.Parse(txtCompra.Text), decimal.Parse(txtVenta.Text));
                this.Limpiar();
                grdListado.DataSource = objTipoCambio.CargarDatosGridView();
                MessageBox.Show("SE HA REGISTRADO EL TIPO DE CAMBIO", "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                stcMaestro.SelectedTab = stiListado;
                sbMantenimiento.ExpandedPanel = sbpVer;
            }
            catch (Exception ex)
            {
                MessageBox.Show("SE HA PRODUCIDO UN ERROR AL \nGUARDAR EL TIPO DE CAMBIO",
                    "SISTEMA DE CAJA CHICA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnNuevoCancelar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
        }

        private void btnNuevoLimpiar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
        }

        private void btnModificarGuardarCambios_Click(object sender, EventArgs e)
        {
            objTipoCambio = new clsTipoCambio();
            try
            {
                objTipoCambio.GuardarCambios(int.Parse(txtCodigo.Text), DateTime.Parse(dtFecha.Text), decimal.Parse(txtCompra.Text), decimal.Parse(txtVenta.Text));
                this.Limpiar();
                grdListado.DataSource = objTipoCambio.CargarDatosGridView();
                MessageBox.Show("SE HA REGISTRADO EL TIPO DE CAMBIO", "SISTEMA DE CAJA CHICA",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                stcMaestro.SelectedTab = stiListado;
                sbMantenimiento.ExpandedPanel = sbpVer;
            }
            catch (Exception ex)
            {
                MessageBox.Show("SE HA PRODUCIDO UN ERROR AL \nGUARDAR EL TIPO DE CAMBIO",
                    "SISTEMA DE CAJA CHICA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void grdListado_DoubleClick(object sender, EventArgs e)
        {
            string codigo = "0", fecha = "", compra = "", venta = "";
            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            fecha = grdListado.CurrentRow.Cells[1].Value.ToString();
            compra = grdListado.CurrentRow.Cells[2].Value.ToString();
            venta = grdListado.CurrentRow.Cells[3].Value.ToString();
            txtCodigo.Text = codigo;
            dtFecha.Text = fecha;
            txtCompra.Text = compra;
            txtVenta.Text = venta;
            sbMantenimiento.ExpandedPanel = sbpModificar;
            stcMaestro.SelectedTab = stiRegistro;
        }

        private void btnModificarSeleccionar_Click(object sender, EventArgs e)
        {
            string codigo = "0", fecha = "", compra = "", venta = "";
            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            fecha = grdListado.CurrentRow.Cells[1].Value.ToString();
            compra = grdListado.CurrentRow.Cells[2].Value.ToString();
            venta = grdListado.CurrentRow.Cells[3].Value.ToString();
            txtCodigo.Text = codigo;
            dtFecha.Text = fecha;
            txtCompra.Text = compra;
            txtVenta.Text = venta;
            sbMantenimiento.ExpandedPanel = sbpModificar;
            stcMaestro.SelectedTab = stiRegistro;
        }

        private void btnModificarCancelar_Click(object sender, EventArgs e)
        {
            this.Limpiar();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcMaestro.SelectedTab = stiListado;
            
        }

        private void btnEliminarEliminar_Click(object sender, EventArgs e)
        {
            DateTime fecha;
            objTipoCambio = new clsTipoCambio();
            fecha = DateTime.Parse(grdListado.CurrentRow.Cells[1].Value.ToString());
            DialogResult respuesta = MessageBox.Show("¿DESEA ELIMINAR EL TIPO DE CAMBIO?",
                "SISTEMA DE CAJA CHICA", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (respuesta == DialogResult.Yes)
            {
                try
                {
                    objTipoCambio.Eliminar(fecha);
                    this.Limpiar();
                    grdListado.DataSource = objTipoCambio.CargarDatosGridView();
                    MessageBox.Show("SE HA ELIMINADO EL TIPO DE CAMBIO", "SISTEMA DE CAJA CHICA",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    stcMaestro.SelectedTab = stiListado;
                    sbMantenimiento.ExpandedPanel = sbpVer;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("SE HA PRODUCIDO UN ERROR AL \nELIMINAR EL TIPO DE CAMBIO",
                        "SISTEMA DE CAJA CHICA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void btnVerSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }        
    }
}
